package com.liujiaqi.lease.web.admin.custom.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Knife4jConfiguration {

  @Bean
  public OpenAPI customOpenAPI() {

    return new OpenAPI().info(
      new Info()
        .title("后台管理系统API")
        .version("1.0")
        .description("后台管理系统API"));
  }

  @Bean
  public GroupedOpenApi systemAPI() {

    return GroupedOpenApi.builder().group("系统信息管理").
      pathsToMatch(
        "/admin/system/**"
      ).
      build();
  }

  @Bean
  public GroupedOpenApi loginAPI() {

    return GroupedOpenApi.builder().group("后台登录管理").
      pathsToMatch(
        "/admin/login/**",
        "/admin/info"
      ).
      build();
  }

  @Bean
  public GroupedOpenApi apartmentAPI() {

    return GroupedOpenApi.builder().group("公寓信息管理").
      pathsToMatch(
        "/admin/apartment/**",
        "/admin/room/**",
        "/admin/label/**",
        "/admin/facility/**",
        "/admin/fee/**",
        "/admin/attr/**",
        "/admin/payment/**",
        "/admin/region/**",
        "/admin/term/**",
        "/admin/file/**"
      ).build();
  }
  @Bean
  public GroupedOpenApi leaseAPI() {
    return GroupedOpenApi.builder().group("租赁信息管理").
      pathsToMatch(
        "/admin/appointment/**",
        "/admin/agreement/**"
      ).build();
  }
  @Bean
  public GroupedOpenApi userAPI() {
    return GroupedOpenApi.builder().group("平台用户管理").
      pathsToMatch(
        "/admin/user/**"
      ).build();
  }
}